
// 有点尴尬,好像发现不需要ID...
// 还是先不删除吧,万一需要呢 ~_~

/**
 * ID: 文件ID + "_" + 题目ID
 * [文件ID,题目ID(题目序号,即可增长)]
 * 它负责加载唯一ID
 */
export type ID = [string,number];

export type ID生成器 = {
	id:ID,
	as_string:()=>string,
	next:()=>number,
};

export const new_ID = (s:string|ID): ID生成器 | "Err" => {
   let id:ID;
	if(typeof s == "string"){
		let arr = s.split("_");
		if(arr.length > 2){
			let number = arr[arr.length-1];
			id=[s.slice(0,s.length-number.length),Number(number)];
		}else if(arr.length == 2) {
			id=[arr[0],Number(arr[1])];
		}else { return "Err"} //说实话 throw 真不好用,可惜Ts没有模式匹配
	}else { id = s }
	
	return {
		id:id,
		as_string():string{
			return  id[0] + "_" + id[1]
		},
		next():number{
			id[1]++;
			return id[1]
		}
	}
}




/**
 * ID = 文件ID + "_" + 题目ID
 * 一般描述 id ,就是 这个 ID
 * 文件ID 描述为 ID_key
 * 题目ID 描述为 题目id
 */